package com.seanchenxi.gwt.xmlrpc.client.model;

import java.util.HashMap;
import java.util.Set;

/**
 * The Interface BaseModel.
 */
public interface BaseModel extends Model{
		
	/**
	 * Gets the properties.
	 *
	 * @return the properties
	 */
	HashMap<String, Object> getProperties();
	
	/**
	 * Set the properties.
	 *
	 * @param properties the properties
	 */
	void setProperties(HashMap<String, Object> properties);
	
	/**
	 * Get all the property names.
	 *
	 * @return the property names
	 */
	Set<String> getPropertyNames();
	
	/**
	 * Gets the given property value.
	 *
	 * @param <X> the generic type
	 * @param property the property
	 * @return the x
	 */
	<X>X get(String property);
	
	/**
	 * Sets the given property's value.
	 *
	 * @param <X> the generic type
	 * @param property the property
	 * @param value the value
	 */
	<X> void set(String property, X value);
	
}
